package top.infopub.mgr.mkt.dao;

import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import top.infopub.dto.mkt.InquiryProDto;
import top.infopub.generic.GenericDao;
import top.infopub.mgr.mkt.domain.BidCurrencyDomain;
import top.infopub.mgr.mkt.domain.InquiryProDomain;
import top.infopub.mgr.mkt.vo.InquiryProVo;
import top.infopub.model.mkt.InquiryCompany;
import top.infopub.model.mkt.InquiryPro;
import top.infopub.model.mkt.ProjectInfo;

import java.util.List;

/** 资格预审(MKT_INQUIRY_PRO) **/
public interface InquiryProDao extends GenericDao<InquiryPro, String> {

    /**
     * 根据条件查询资格预审记录
     * @param inquiryProVo
     * @return
     * @see
     */
    Page<BidCurrencyDomain> selectByDomainWhere(InquiryProVo inquiryProVo);

    /*根据proCode查出projectInfo的所有信息*/
    ProjectInfo findByProCode(String proCode);

    /**
     * 根据条件查询-我审批的资格预审记录
     * @param inquiryProVo
     * @return
     * @see
     */
    Page<InquiryProDomain> selectMyCheckByDomainWhere(InquiryProVo inquiryProVo);

    /**
     * 新增资格预审记录
     * @param inquiryPro
     * @see
     */
    void insertById(InquiryPro inquiryPro);

    /**
     * 根据id查询资格预审记录详情
     * @param id 资格预审id
     * @return
     * @see
     */
    InquiryProVo selectById(String id);

    /**
     * 查询可决策的资格预审记录
     * @return
     * @see
     */
    List<InquiryPro> selectUsableInquiryPro();

    /**
     * 根据项目编号查询是否已存在（processStatus in('1','9')）
     * @param proCode 项目编号
     * @return
     * @see
     */
    List<InquiryPro> selectByProCode(String proCode);

    /**
     * 资格预审详情查询
     * @param id
     * @return
     */
    InquiryProDto queryDetailById(@Param("id") String id);

    /**
     * 批量新增竞争对手单位名称
     * @param list
     */
    void insertBatchInqCompInfo(List<InquiryCompany> list);

    /**
     * 查询竞争对手单位名称列表
     * @param proCode
     * @return
     */
    List<InquiryCompany> queryInqCompByProCode(@Param("proCode") String proCode);
}
